Differentiable Functional Program Interpreters
نویسندگان
چکیده
Programming by Example (PBE) is the task of inducing computer programs from input-output examples. It can be seen as a type of machine learning where the hypothesis space is the set of legal programs in some programming language. Recent work on differentiable interpreters relaxes the discrete space of programs into a continuous space so that search over programs can be performed using gradient-based optimization. While conceptually powerful, so far differentiable interpreter-based program synthesis has only been capable of solving very simple problems. In this work, we study modeling choices that arise when constructing a differentiable programming language and their impact on the success of synthesis. The main motivation for the modeling choices comes from functional programming: we study the effect of memory allocation schemes, immutable data, type systems, and built-in control-flow structures. Empirically we show that incorporating functional programming ideas into differentiable programming languages allows us to learn much more complex programs than is possible with existing differentiable languages.
منابع مشابه
New inequalities for a class of differentiable functions
In this paper, we use the Riemann-Liouville fractionalintegrals to establish some new integral inequalities related toChebyshev's functional in the case of two differentiable functions.
متن کاملSpecialising Interpreters Using Offline Partial Deduction
We present the latest version of the logen partial evaluation system for logic programs. In particular we present new binding-types, and show how they can be used to effectively specialise a wide variety of interpreters. We show how to achieve Jones-optimality in a systematic way for several interpreters. Finally, we present and specialise a nontrivial interpreter for a small functional program...
متن کاملLanguage Extensibility via First-class Interpreters and Constructive Modules
1 Abstract This document proposes these theses: First-class interpreters ooer a exible means of language extensibility. A simple module system can provide: { incremental specialization { program construction rather than program organization { static rather than dynamic composition of programs { explicit rather than implicit control over composition The former two claims duplicate properties pre...
متن کاملTrends in Specialization of Interpreters using Offline Narrowing-Driven Partial Evaluation
The search of compilation by specialization of interpreters is a source to source program transformation which has inspired the work of scientists in partial evaluation from many years ago. Narrowing-driven Partial Evaluation (NPE) is a powerful technique for the specialization of functional logic programs. Recent advances in research of offline NPE schemes allow us to develop partial evaluator...
متن کاملA new approach for implementing stand-alone and Web-based interpreters for Java
Compared to imperative programming languages like Pascal or Basic, or functional programming languages like ML or Haskell learning Java is hampered by the fact that to get even the simplest running program the learner has to define a public class and a method with a certain signature. We present both a stand-alone and a webbased interpreter which execute Java fragments and relieve the learner f...
متن کامل